package com.coocaa.ops.admin.v1.audit.service;


import com.coocaa.ops.common.core.biz.audit.entity.AuditTaskInfoEntity;
import com.coocaa.ops.common.core.biz.audit.entity.AuditTaskInfoHistoryEntity;
import com.coocaa.ops.common.core.biz.auth.entity.SysUserEntity;

import java.util.List;

/**
 * @author bijiahao
 * @date : 2018/5/30.
 * @description: 审核相关的公共服务接口
 *
 */
public interface IAuditCommonService {

    /**
     * 打开任务
     * @param auditTaskInfoEntity
     * @param user
     * @return
     */
    AuditTaskInfoEntity openTask(AuditTaskInfoEntity auditTaskInfoEntity, SysUserEntity user);

    /**
     * 更新任务信息-通过自增ID
     *
     * @param entity
     */
    void updateById(AuditTaskInfoEntity entity);

    /**
     * 保存任务历史信息
     *
     * @param entity
     */
    void saveAuditTaskInfoHistory(AuditTaskInfoEntity entity);

    /**
     * 获取审核任务信息-通过资源ID-版本-类别
     *
     * @param resourceId
     * @param resourceVersion
     * @param resourceType
     * @return
     */
    AuditTaskInfoEntity getTaskByIdAndVersionAndType(Integer resourceId, Integer resourceVersion, String resourceType);

    /**
     * 查询审核任务历史信息-通过资源ID-版本-类别
     *
     * @param resourceId
     * @param version
     * @param resourceType
     * @return
     */
    List<AuditTaskInfoHistoryEntity> queryAuditHistory(Integer resourceId, Integer version, String resourceType);

    /**
     * 删除任务信息-通过资源ID-版本-类别
     *
     * @param id
     * @param version
     * @param type
     */
    void logicDelByIdAndVersionAndType(Integer id, Integer version, String type);

}
